/*
Copyright (C) 2009-2011 Xanadu Development Team

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2
of the License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/

#include "../../server/Fame.h"
#include "../../tools/PacketCreator.h"
#include "PlayerHandler.h"
#include "../../server/Player.h"
#include "../../server/Map.h"

void PlayerHandler::fameHandle(PacketReader &packet) {
	int playerid = packet.readInt();
	char type = packet.read();
	if (playerid == 0) {
		player->send(PacketCreator().sendFameError(1));
		return;
	}
	if (player->getID() == playerid) {
		return;
	}
	Player *famee = player->getMap()->getPlayer(playerid);
	if (famee == 0) {
		return;
	}
	int checkResult = Fame::canFame(player, playerid);
	if (checkResult != 0) {
		player->send(PacketCreator().sendFameError(checkResult));
		return;
	}
	short newFame = famee->getFame() + (type == 1 ? 1 : -1); // Increase if type = 1, else decrease
	famee->setFame(newFame);
	Fame::addFameLog(player->getID(), playerid);
	famee->send(PacketCreator().sendFame(player->getName(), type));
	player->send(PacketCreator().sendFamee(famee->getName(), type, newFame));
}